# -*- coding: utf-8 -*-
# Created by zhangyanqi on 2018/4/17
"""
给定一个 32 位有符号整数，将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321
 示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储 32 位有符号整数，其数值范围是 [−231,  231 − 1]。根据这个假设，如果反转后的整数溢出，则返回 0。
"""


class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        is_negative = False
        if x < 0:
            x = -x
            is_negative =True
        result = ""
        if is_negative:
            result +="-"
        s = str(x)
        for i in reversed(range(0, len(s))):
            result += s[i]
        if not (int(result) >= (-2)**31 and int(result) <= (2**31) - 1):
            return 0
        return int(result)


if __name__ == "__main__":
    s = Solution()
    reverse = s.reverse(-2147483648)
    a = -(2**31)
    print(reverse)
